home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / a_utils / ffccflow / ffccflow.lha / ffccc+flow / ffccc / README < prev    next >
Text File  |  1992-07-31  |  7KB  |  174 lines

  1. Instructions for Installing Floppy
  2. ----------------------------------
  3.  
  4. Floppy is a Fortran Coding Convention Checker and Fortran
  5. code tidier. Floppy understands standard Fortran 77 code.
  6. The user may specify any combination of a total of 44
  7. different coding conventions. These are described fully 
  8. in the Floppy guide, which comes as a PostScript file in
  9. the posting. (I also include the list of checks at the
  10. end of this article, those marked with an asterisk 
  11. correspond to what we consider to be a "standard" set.)
  12. Users may tidy their code by renumbering all
  13. statement labels, renumbering all FORMAT statements, 
  14. indenting DO and IF clauses, right-adjusting GOTOs and
  15. by moving all FORMAT statements to the end of each program
  16. module. Any combination of these tidy options is possible.
  17.  
  18. Floppy was initially written for VMS systems. The posting
  19. includes routines and execs that allow Floppy to be built
  20. for VM/CMS, VAX/VMS and Unix systems. The procedure for
  21. each system is described briefly below. 
  22.  
  23. Floppy was written by Julian Bunn and Hans Grote, at the
  24. European Centre for Particle Physics in Geneva, Switzerland.
  25.  
  26. First Steps
  27. -----------
  28.  
  29. Each part of the posting should be saved into a
  30. directory called "floppy". The mail headers should be
  31. removed from each part and then each part
  32. should be executed as a script (Floppy was packed using
  33. the Packmail utility on a VMS Ultrix system).
  34.  
  35. There is a document in PostScript form, called "floppy.ps", 
  36. which describes in detail how Floppy works and is used on
  37. Ultrix, VAX/VMS and VM/CMS systems.
  38.  
  39. Please read the file called "copyright".
  40.  
  41. Please also note that the source code for Floppy does
  42. NOT necessarily conform to the coding conventions it
  43. itself checks ! You may draw whatever conclusions you
  44. wish from this fact !
  45.  
  46. Installing on Unix Systems
  47. --------------------------
  48. 1)  After unpacking the source files, you should type "make".
  49. 2)  If your Fortran compiler is not called "f77" then you
  50.     should first edit the file called "makefile" accordingly. 
  51.  
  52. As installation has not been checked on many Unix
  53. platforms, you may also have to fiddle a bit with the
  54. makefile, and possibly with the syntax of the "include"
  55. directives in the .f files.
  56.  
  57. The "man" page for Floppy is called "floppy.l". 
  58.  
  59. Installing on VMS Systems
  60. -------------------------
  61. 1)  Copy all the .f and .h files to your VMS system. 
  62. 2)  Copy also the files "floppy.vmsfor","floppy.vmshlp", 
  63.     and "floppy.vmscld".
  64. 3)  Remove the file "floppy.f", and replace it with the
  65.     "floppy.vmsfor" file. 
  66. 4)  You will then have to edit all the "include" directives 
  67.     in the .f files to correspond with the VMS syntax. 
  68.     (If you're handy with "awk", you can probably do this 
  69.     already on your Unix machine.)
  70. 5)  You should also edit PARAM.h so that MCUNIT=5. 
  71. 6)  Then compile the Fortran files, and link them together.
  72.     No libraries should be required. 
  73. 7)  Take the "floppy.vmscld" file, edit it so that the 
  74.     image name is correct for your .EXE, and save it as 
  75.     "floppy.cld". 
  76. 8)  Then type "$ set command floppy". 
  77. 9)  Refer to the VMS help file in "floppy.vmshlp" for the 
  78.     syntax of the command. 
  79.  
  80. To make Floppy available for all users on your VMS system, you
  81. will need privilege to update DCLTABLES with the
  82. "set command" command.
  83.  
  84. Installing on VM/CMS
  85. --------------------
  86. 1)  Copy all the .f and .h files to your CMS minidisk. 
  87. 2)  Remove the "floppy.f" file.
  88. 3)  Make one big file out of all the .f files. 
  89. 4)  Copy also the files "floppy.rexx" (call it "floppy exec"),
  90.     "floppy.panel" (call it "floppy panel"), and "floppy.helpcms"
  91.     (call it "floppy helpcms").
  92. 5)  You will then have to edit all the "include" directives 
  93.     to correspond with the CMS MACLIB syntax. 
  94.     (If you're handy with "awk", you can probably do this already 
  95.     on your Unix machine.)
  96. 6)  Create a CMS MACLIB, and place all the .h files in it.
  97. 7)  Issue the GLOBAL MACLIB command to make the MACLIB available.
  98. 8)  Edit PARAM.h so that MCUNIT=5. 
  99. 9)  Then compile the Fortran, and load it. 
  100.     No libraries should be required. 
  101. 10) Generate a LOAD module called FLOPPY$M using the GENMOD
  102.     command. 
  103.  
  104. Note that, for full-screen interaction, you need
  105. the IOS3270 Program Offering from IBM. But Floppy also
  106. works in command line mode. Refer to the HELPCMS file
  107. for details.
  108.  
  109. Disclaimer
  110. ----------
  111. Although Floppy has been in constant use for some years at
  112. CERN, we make no guarantees of its correctness or "buglessness".
  113. If you manage to port Floppy to another platform, I would be
  114. very interested to hear details. Unfortunately, I cannot assist
  115. in any way with such exercises. Please read the file called
  116. "copyright" in the posting.
  117.  
  118. -------------------------------------------------------------------
  119.  
  120. Julian Bunn
  121. Computing and Networks Division
  122. CERN
  123. Geneva
  124. Switzerland
  125. Tel. 767 50 29
  126. 14th. May 1990
  127.  
  128. List of Coding Conventions in Floppy
  129.  
  130. *  1   Avoid comment lines after end of module
  131. *  2   End all program modules with the END statement
  132. *  3   Declared COMMON blocks must be used in the module
  133. *  4   COMPLEX and DOUBLEPRECISION vars at end of COMMON
  134. *  5   COMMON block definitions should not change
  135. *  6   Variable names should be 6 or fewer characters long
  136.    7   Variables in COMMON should be 6 characters long
  137.    8   Variables not in COMMON should be <6 characters
  138. *  9   Integer variables should begin with I to N
  139. *  10  Variable names should not equal FORTRAN keywords
  140. *  11  Avoid comment lines before module declaration
  141. *  12  Module names should not equal intrinsic functions
  142. *  13  First statement in a module should be declaration
  143. *  14  Module should begin with at least 3 comment lines
  144.    15  Comment lines should begin with a C
  145. *  16  No comment lines between continuations
  146. *  17  Avoid non-standard variable types eg INTEGER*2
  147. *  18  Avoid multiple COMMON definitions per line
  148. *  19  Do not dimension COMMON variables outside COMMON
  149. *  20  Avoid embedded blanks in variable names
  150. *  21  Avoid embedded blanks in syntactic entities
  151. *  22  Avoid the use of PRINT statements (use WRITE)
  152.    23  Do not give the END statement a label
  153. *  24  Avoid WRITE(* construction
  154.    25  Avoid WRITE statement in a FUNCTION
  155. *  26  Avoid the use of PAUSE statements
  156. *  27  Statement labels should not begin in column 1
  157. *  28  Always preceede STOP by a descriptive WRITE
  158. *  29  Avoid the use of ENTRY in FUNCTIONS
  159. *  30  Avoid using I/O in FUNCTIONs
  160.    31  Avoid the use of the alternate RETURN statement
  161. *  32  COMMON block names should not equal variable names
  162. *  33  Avoid use of obsolete CERN library routines
  163.    34  Avoid FUNCTION names the same as intrinsics
  164. *  35  Local functions should be declared EXTERNAL
  165. *  36  Module names should all be different
  166. *  37  Avoid expressions of mixed mode eg A=B/I
  167. *  38  Length of passed CHARACTER variables should be *
  168. *  39  Order of statements should conform !
  169. *  40  Separate Statement Functions by comment lines
  170. *  41  No names in Statement Function definitions elsewhere
  171.    42  Use LLT,LGT etc to compare CHARACTER vars. in IFs
  172.    43  Variables (not COMMON, not PARAMs) <6 characters
  173. *  44  Passed arguments should be dimensioned * in module
  174.